import mediaDevices from "./MediaDevicesUtils";

// 获取屏幕流
function getScreenStream() {
    return mediaDevices.getDisplayMedia({ video: true });
}

// 成功获取屏幕流
function handleSuccess(stream, videoDom) {
    let video;
    // 这里的stream就是屏幕共享的媒体流，可以将其设置为video元素的源
    if (videoDom) {
        video = videoDom;
    } else {
        video = document.querySelector('video');
    }
    video.srcObject = stream;

    // 播放视频以显示屏幕共享内容
    video.onloadedmetadata = () => {
        video.play();
    };
}

// 处理获取屏幕流时出现的错误
function handleError(error) {
    console.error('获取屏幕流失败:', error);
}

const displayMedia = {
    // getScreenStream: await getScreenStream(),

    startDisplayMedia: (videoDom = null) => {
        // 检测浏览器是否支持屏幕共享
        if (navigator.getDisplayMedia || navigator.mediaDevices.getDisplayMedia) {
            // 唤起屏幕共享
            getScreenStream().then(
                (stream) => {
                    handleSuccess(stream, videoDom);
                    return stream;
                }
            ).catch(handleError);
        } else {
            alert('手机设备不支持屏幕共享');
        }
    }
}

export default displayMedia;
